package com.taxshare.purchaser.constant;

import java.util.Arrays;
import java.util.List;

/**
 * @author YANG
 * @date 2021/4/6
 */
public class CodeConstant {

    //通用code
    public static final String COMM_CODE_0 = "0";
    public static final String COMM_CODE_1 = "1";
    public static final String COMM_CODE_2 = "2";
    public static final String COMM_CODE_3 = "3";
    public static final String COMM_CODE_4 = "4";
    public static final String COMM_CODE_00 = "00";
    //底账同步类型(02:按照日期同步)
    public static final String  DATE_SYNCHRONIZATION  = "02";
    //底账同步类型(05:初始化发票数据：全量同步)
    public static final String  FULL_SYNCHRONIZATION  = "05";
    //底账同步类型(06:增量同步)
    public static final String DEFAULT_SYNCTYPE = "06";
    //增量同步完成回调
    public static final String COMPLETION_NOTIFICATIONS = "07";

    /**
     * 系统内部返回标志
     */
    public static final String T0000 = "T0000";
    public static final String SUCCESS = "0000";
    public static final String T0001 = "T0001";
    public static final String ERROR = "T9999";
    /**
     * 查验状态 0 未查验 1 查验成功  2 查验失败
     */
    public static final String NOT_CHECK = "0";
    public static final String CHECK_SUCCESS = "1";
    public static final String CHECK_FAIL = "2";
    /**
     * OCR返回发票类型
     */
    //火车票
    public static final String INVOICETYPE_HCP = "10503";
    //航空运输电子客票行程单
    public static final String INVOICETYPE_FJP = "10506";
    //客运汽车发票
    public static final String INVOICETYPE_QCP = "10505";
    //出租车发票
    public static final String INVOICETYPE_CZP = "10500";
    //定额发票
    public static final String INVOICETYPE_DEFP = "10200";
    //过路费发票
    public static final String INVOICETYPE_GLFP = "10507";
    //机打发票
    public static final String INVOICETYPE_JDFP = "10400";
    //OCR返回发票类型集合
    public static final List<String> TYPE_LIST = Arrays.asList("10503", "10506", "10505", "10500", "10200", "10507", "10400");

    /**
     * 录入方式 1 图片上传 2 手工录入
     */
    public static final String UPLOAD_1 = "1";
    public static final String UPLOAD_2 = "2";

    /**
     * 报销状态 1 未报销 2 已报销 3 报销驳回
     */
    public static final String REIMBURSEMENT_1 = "1";
    public static final String REIMBURSEMENT_2 = "2";
    public static final String REIMBURSEMENT_3 = "3";
    //未报销界面查询状态集合
    public static final List<String> NOT_REIMBURSEMENT = Arrays.asList("1", "3");

    /**
     * 提交状态  0 未提交  1 已提交
     */
    public static final String SUBMIT_STATUS_0 = "0";
    public static final String SUBMIT_STATUS_1 = "1";
    /**
     * 增值税发票类型
     */
    //专用发票
    public static final String INVOICE_ZYFP = "01";
    //普通发票
    public static final String INVOICE_PTFP = "04";
    //电子发票
    public static final String INVOICE_DZFP = "10";
    //卷式发票
    public static final String INVOICE_JSFP = "11";
    //增值税发票类型集合
    public static final List<String> INVOICE_LIST = Arrays.asList("01", "04", "10", "11");
    //Ocr增值税发票类型集合
    public static final List<String> OCRINVOICE_LIST = Arrays.asList("10100", "10101", "10102", "10103");
    /**
     * 非增值税发票类型
     */
    //火车票
    public static final String TICKET_HCP = "21";
    //航空运输电子客票行程单
    public static final String TICKET_FJP = "23";
    //客运汽车发票
    public static final String TICKET_QCP = "22";
    //出租车发票
    public static final String TICKET_CZP = "24";
    //定额发票
    public static final String TICKET_DEFP = "27";
    //过路费发票
    public static final String TICKET_GLFP = "25";
    //机打发票
    public static final String TICKET_JDFP = "26";
    //非增值税发票类型集合
    public static final List<String> TICKET_LIST = Arrays.asList("21", "23", "22", "24", "27", "25", "26");
    //非增值税票据类型
    public static final String TICKET_TYPES = "00";

    /**
     * 采集查询标志 1 发票采集 2 未报销 3 已报销
     */
    public static final String FLAG_FPCJ = "1";
    public static final String FLAG_WBX = "2";
    public static final String FLAG_YBX = "3";

    /**
     * 采集设置标志 1 责任人 2 记账科目 3 授权人
     */
    public static final String FLAG_ZRR = "1";
    public static final String FLAG_JZKM = "2";
    public static final String FLAG_SQR = "3";

    /**
     * 审批状态 1 未审批 2 审批通过 3 审批不通过 4 审批撤销 5 审批中
     */
    public static final String APPROVAL_1 = "1";
    public static final String APPROVAL_2 = "2";
    public static final String APPROVAL_3 = "3";
    public static final String APPROVAL_4 = "4";
    public static final String APPROVAL_5 = "5";
    //不可撤销申请集合
    public static final List<String> NOT_CANCEL_LIST = Arrays.asList("2", "3");
    //不可申请审批集合
    public static final List<String> NOT_EXAMINE_LIST = Arrays.asList("2","3","4");

    /**
     * 发票审核规则票种
     * 00->全部 , 01->专票， 02->普票
     * INVOICE_TYPES_LIST 发票审核规则票种集合
     */
    public static final String INVOICE_QB = "00";
    public static final String INVOICE_ZP = "01";
    public static final String INVOICE_PP = "02";
    public static final List<String> INVOICE_TYPES_LIST = Arrays.asList("00","01","02");

    /**
     * 校验结果 1 未审核 2 审核成功 3 审核失败
     */
    public static final String NOT_RULES = "1";
    public static final String RULES_SUCCESS = "2";
    public static final String RULES_FAIL = "3";

    /**
     * 发票审核规则范围类型
     * 1->集团，2->税号
     */
    public static final String INVOICE_JT = "1";
    public static final String INVOICE_SH = "2";
    public static final List<String> INVOICE_SCOPE_APPLICATION = Arrays.asList("1","2");

    /**
     * 审核规则开启标志
     * 0->不开启  1->开启
     */
    public static final String RULES_NOT_OPEN="0";
    public static final String RULES_OPEN="1";
    /**
     * 普通用户
     */
    public static final String GENERAL_TYPE = "1";
    /**
     * 黑白名单标志
     * 0->白名单  1->黑名单
     */
    public static final String WHITE_TYPE="0";
    public static final String BLACK_TYPE="1";

    /**
     * 普票类型集合
     */
    public static final List<String> INVOICE_PP_LIST = Arrays.asList( "04", "10", "11");

    /**
     * 认证模式 1 抵扣勾选 2 取消勾选
     */
    public static final String DKGX="1";
    public static final String QXGX="-1";

    /**
     * 发票校验规则
     * 1 -用户地址电话银行规则 2 -黑名单规则 3 -购方校验规则  4 -购方税号校验规则 5 -商品名称校验规则 6 -销方校验规则
     */
    public static final String RULE_1="1;";
    public static final String RULE_2="2;";
    public static final String RULE_3="3;";
    public static final String RULE_4="4;";
    public static final String RULE_5="5;";
    public static final String RULE_6="6;";
}


